<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>LibQQt: QQt应用程序框架中间件</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">LibQQt
   &#160;<span id="projectnumber">v3.1</span>
   </div>
   <div id="projectbrief">开源、跨平台Qt应用程序框架中间件</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">QQt应用程序框架中间件 </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>中文全名 ****QQt应用程序框架中间件****。 <br />
英文全名 ****QQt Application Framework Middleware****，英文曾用名QQt Foundation Class。 <br />
英文简称 ****LibQQt****。 <br />
主库名称 ****LibQQt****。 <br />
*QQt应用程序框架中间件是应用程序框架层的一系列库集合，持续实现这一层的功能。主库是LibQQt，辅助（平级扩展）库有QQtExquisite、QQtHighGrade、QQtIndustrialControl、QQtInput、QQtInstallFramework、QQtMediaExtention、QQtStyle、QQtTool等，很多流行Qt Wrapper库都在辅助库中。全部使用Multi-link技术实施工程管理。* <br />
QQt应用程序框架中间件库列表 <br />
</p>
<h1>主库 LibQQt</h1>
<p>LibQQt为基于Qt开发的App提供中间问题处理层，适配桌面、嵌入式以及Android、iOS的开发。 <br />
LibQQt为用户自动生成Library SDK，主动帮助用户发布App和资源文件。 <br />
2018年1月，LibQQt代码变更数量已达30万，主要面向初、中、高级软件相关专业、有一定App开发经验的工程师。 <br />
LibQQt现进行正式发布版本v2.1.6.0，欢迎工程师们使用。 <br />
2018年8月，LibQQt代码变更数量已达45万，主要面向嵌入式、桌面平台进行了功能和库扩充，使用多链接技术v2加强了管理能力。 <br />
LibQQt现进行正式发布版本v3.1，欢迎工程师们使用。 <br />
 gitee link: <a href="https://gitee.com/drabel/LibQQt">https://gitee.com/drabel/LibQQt</a> <br />
github link: <a href="https://github.com/AbelTian/LibQQt">https://github.com/AbelTian/LibQQt</a> <br />
 </p><hr/>
 <h1>摘要介绍</h1>
<p><em>LibQQt包括基础组成、精美组成、高级组成</em> <br />
- 基础组成，可以完成专业App所需要的业务功能和图形功能。 <br />
- 精美组成，包括高级业务功能和超级图形功能。（都在src/exquisite文件夹里） <br />
- 高级组成，包括App工程师们不多使用，不太熟悉的、比较艰难的功能。（都在src/highgrade文件夹里） <br />
 <em>如果用户希望精简LibQQt，qqt_header.pri里面有很多模块开关，开开关关能修剪。</em> <br />
*不建议使用cmake，建议使用qmake。* <br />
*自动发布应用程序，自动拷贝应用配置，自动发布依赖库。（请正确配置三个主目录）* <br />
 </p><hr/>
 <h1>详细介绍</h1>
<ol type="1">
<li>支持绘制图表<ul>
<li><a href="src/charts/qqtchartview.h">QQtChart</a> (compatiable with QChart and <a class="el" href="class_q_custom_plot.html" title="The central class of the library. This is the QWidget which displays the plot and interacts with the ...">QCustomPlot</a>) <br />
2. 支持检测USB设备热插拔 <br />
3. 自定义了一部分特殊需要的控件，用来解决Qt的嵌入式bug。</li>
<li>包括完全使用图片的checkbox（switchbutton）</li>
<li>QQtTabWidget，解决QtTab不能竖排横显文字的问题</li>
<li>QQt进度条，解决Qt进度条在Dialog中导致系统死机的问题(e-linux) <br />
1. 添加精美控件</li>
<li>包括有多种效果的Widget、Dialog</li>
<li>二维码生成器、识别器，校验码生成器</li>
<li>九宫格技术展示图片</li>
<li>添加gif support Widgets <br />
 - 可以方便的设置动态按钮等。 <br />
 - 有<a href="src/exquisite/gifwidgets/qqtgifwidget.h">QQtGifWidget</a>、QQtGifButton等。 <br />
 - 添加color support widgets <br />
 - 单色Widget。 <br />
 - 添加click and click sound widget <br />
 - 带按键声，支持长按、双击的widget和label等控件。 <br />
 - 以及未列出的等20余种自定义widget。</li>
</ul>
</li>
<li>有线和无线网络自动连接管理器 (e-linux) <br />
6. 解决Qt4.8.7在嵌入式屏幕上QGraphics系统不正常绘画的问题</li>
<li>QQt输入法 <br />
 - 重写了UI，适配多种屏幕 <br />
 - 由于版权等一些原因，这个模块在LibQQt 3.0的时候移除。 <br />
 - 我制作了QQtInput库以提供输入法功能，请用户到我的工程主页，查看QQtInput工程。 <br />
8. Qt对象管理器 <br />
 - 用于管理已经生成的Qt对象实例，objectName是唯一查找索引。 <br />
 - 含有QQtObjectFactory，用于动态注册、生成来自QObject和QWidget的类。</li>
<li>嵌入式视频播放器，模拟端口实时预览器 <br />
 - <em>已经移动到独立的QQtMediaExtention库，专门提供媒体功能，主要是视频媒体。</em> 0. QQt打印机，支持打印pdf</li>
</ol>
<ol type="1">
<li>QQtWord，支持doc文档编写，输出pdf格式。</li>
<li>QQtTreeView，添加Qt4内部没有TreeView<ul>
<li>包括QQtXmlTreeModel、QQtJsonTreeModel、QQtFileSystemTreeModel、QQtSqlTreeModel</li>
</ul>
</li>
<li>QQt通讯套件。<ul>
<li>通讯口类 <br />
 - QQtNfcClient、QQtNfcServer 支持近场通讯。 <br />
 - <a class="el" href="class_q_qt_serial_port.html">QQtSerialPort</a> 兼容QSerialPort and <a class="el" href="class_qext_serial_port.html">QextSerialPort</a><ul>
<li><a href="src/network/qqttcpclient.h">QQtTcpClient</a>、QQtTcpServer、QQtUdpClient、QQtUdpServer</li>
<li>QQtBluetoothSocket、QQtBluetoothServer +QQtBluetoothManager</li>
<li>QQtWebAccessManager，支持http、ftp等主流协议，高并发传输，管理cookie和session。</li>
<li><a href="src/network/qqtwebsocketclient.h">QQtWebSocket</a> 接口</li>
<li>一个句柄代表一个和外部通信的节点。 <br />
 - 报文虚类（接口类） <a href="src/network/qqtmessage.h">QQtMessage</a> <br />
 - 在协议里总是用这个报文的临时句柄，用来解协议包和压协议包。</li>
</ul>
</li>
<li>协议虚类（接口类） <a href="src/network/qqtprotocol.h">QQtProtocol</a> QQtWebSocketProtocol <a href="src/network/qqtprotocolmanager.h">QQtProtocolManager</a><ul>
<li>程序业务代码就是依靠这个协议句柄进行通信工作的。 <br />
7. 添加应用中常用的form</li>
</ul>
</li>
</ul>
</li>
</ol>
<p><em>全在frame文件夹</em></p><ol type="1">
<li>支持多页表格 <a href="src/widgets/qqtmultipagetablewidget.h">QQtMultiPageTableWidget</a> <br />
9. 添加 <a href="src/frame/qqtapplication.h">QQtApplication</a>，支持入门级、通用级、专用级嵌入式App所必须的初始化内容</li>
</ol>
<ol type="1">
<li>支持Qt5.9.2 <br />
 - 建议桌面使用这个版本，对三大桌面，和IOS Android e-linux支持都很好。 <br />
0. 跨平台支持macOS、iOS、Android、Windows、Linux、MIPS、ARM等。 <br />
1. 添加矢量图形widgets <br />
 - 比如 QQtSvgProgressbar<ul>
<li><a class="el" href="class_q_qt_svg_check_box.html">QQtSvgCheckBox</a></li>
<li><a href="src/exquisite/svgwidgets/qqtsvgpushbutton.h">QQtSvgPushButton</a> <br />
2. 添加核心类之<a href="src/core/qqtdictionary.h">QQtDictionary</a> <br />
 - 化解C Plus Plus中没有字典类别的尴尬。 <br />
3. 添加Multi Link工程管理pri组 <br />
 - <a href="multi-link/add_multi_link_technology.pri">Multi Link technology</a>，既多链接工程管理技术。</li>
<li><a href="multi-link/multi-link/add_base_manager.pri">add_base_manager.pri</a>，app和lib工程的基础管理者。 <br />
 - 基于qmake，用户可以轻易的链接LibQQt和添加自定义library。 <br />
 - 工程版本变更可以使用add_version(1,0,0,0)实现了。 <br />
5. 升级多媒体音频 <br />
 - 添加内存服务器（一套Input（Reader），Output（Writer）），处理内存和设备之间的数据交互。（这部分的功能完全按照为内存服务的思路设计研发。） <br />
 - <a href="src/multimedia/qqtaudiomanager.h">QQtAudioManager</a>、 <br />
 - QQtWavAudioManager、QQtWavSoundEffect、QQtWavAudioInput、QQtWavAudioOutput、 <br />
 - 将AudioDevice、wav输入输出文件，当做一个设备进行读写，App处理获取到的声音。 <br />
6. 添加Http功能支持工具</li>
</ul>
</li>
</ol>
<p>QQtWebAccessManager，支持管理Session、Cookies。 <br />
 - 添加GumboQuery爬虫工具。 <br />
 - 支持webservice (QtSoap) <br />
8. 添加Qt没有的组件QQtTitleBar <br />
 - 可以组完全自定义的Form。 <br />
 - 加上QQtOSDFrame、QQtOSDForm可以组透明Form。 <br />
8. <b>HighGrade</b> Module 增加新成员 <br />
 - 难度高，谨慎使用。 <br />
 - 线程间、进程间通信组件 <br />
 - QQtSharedMemory，实现可以跨线程、进程的变量，却按照临时变量的方式使用。 <br />
 - QQtLocalServer QQtLocalClient, QQtNamedPipe使用QLocalSocket、PIPE实现跨线程通讯。 <br />
 - QQtLocalQueueServer QQtLocalQueueClient QQtMessageQueue使用QQtLocalQueueSocket实现跨线程通讯。 <br />
 - 使用方法都类似于QQtSharedMemory。 <br />
 - <a class="el" href="class_q_qt_single_ton_application.html" title="The QQtSingleApplication class 单实例Application。 ">QQtSingleTonApplication</a> 单例App，基于QQtApplication，利用基于QLocalSocket的进程间通信实现。 <br />
 </p><hr/>
 <h1>多链接发布技术</h1>
<p>Multiple Link Technology <br />
LibQQt为方便用户开发App过程方便的发布程序，所以添加了多链接和自动发布功能，基于qmake工程管理器的多链接发布技术。 <br />
用户只需要为多链接技术做相应的目录设定，就可以自动发布应用、自动发布配置项目，自动发布依赖库。 <br />
 多链接技术还包括添加设置版本，添加语言，添加程序图标，添加工程常用函数和工程基础配置设定，方便用户不必再进行复杂设置初始化。 <br />
多链接技术还包括为Lib工程发布SDK。 <br />
多链接技术提供的add_base_manager.pri，只需要包含这一个pri文件，用户就可以使用多链接技术，很方便。 <br />
经过发布的App直接点击就可以运行，*大的省去了用户手动发布App的劳烦过程。 <br />
有了Multi-link，Qt C++软件工程师就好像在编辑一个软件的源程序一样处理多个软件。 <br />
 <em>Multi-link提供ProductExecTool，可以对产品集中调用运行、查看运行效果。</em> <br />
*Multi-link提供SdkListTool，方便用户查看已经准备好的SDK在各个平台准备情况的表格。* <br />
*Multi-link提供AddLibraryTool，方便用户通过准备好的SDK自动生成add_library_xxx.pri的链接环。* <br />
*Multi-link提供AddLibraryTool-Multiple，可以同时对多套SDK进行生成链接环。* <br />
*Multi-link提供Multi-linkConfigTool，方便用户配置Multi-link v2必需的三大路径，build/sdk/deploy root。* <br />
 <em>LibQQt3.0基于Multi-link2.0发布，用户使用LibQQt 3，代表用户接受其工程管理工具Multi-link 2.</em> <br />
 </p><hr/>
 <h1>版本分割</h1>
<p>LibQQt R2支持Qt5 Qt4， <br />
LibQQt R3支持Qt5，由于使用Multi-link 2，不支持Qt4。 <br />
现在R3是master分支。 <br />
版本划分图谱 <br />
 </p><hr/>
 <h1>使用案例</h1>
<p>看入门用例截图 <br />
 </p><hr/>
 <h1>使用方法</h1>
<p>在Windows平台上， <br />
*把LibQQt/extra/touch.exe 复制到C:* <br />
*把LibQQt/extra/md5.exe 复制到C:* <br />
 走，去看看入门用法 <br />
入门了，去看看学习设置工程目录 <br />
发现了一个问题: <a href="https://gitee.com/drabel/LibQQt/issues/new?issue%5Bassignee_id%5D=0&amp;issue%5Bmilestone_id%5D=0">new issue link</a> <br />
 </p><hr/>
 <h1>依赖学习知识</h1>
<p>预习Git入门 <br />
 </p><hr/>
 <h1>LibQQt百科</h1>
<p>跳转到LibQQt的百科知识页面 <br />
<a href="http://blog.csdn.net/Dr_Abel">阅读我的LibQQt博客进行一系列的学习</a> <br />
<a href="http://v.youku.com/v_show/id_XMzUzODQ4MTczMg==.html?spm=a2hzp.8244740.0.0">LibQQt视频图说</a> <br />
看看LibQQt的文档 <br />
 </p><hr/>
 <h1>联系我</h1>
<p>邮箱: <a href="#" onclick="location.href='mai'+'lto:'+'tia'+'nd'+'uan'+'ru'+'i@1'+'63'+'.co'+'m'; return false;">tiand<span style="display: none;">.nosp@m.</span>uanr<span style="display: none;">.nosp@m.</span>ui@16<span style="display: none;">.nosp@m.</span>3.co<span style="display: none;">.nosp@m.</span>m</a> <br />
QQ: 2657635903 <br />
 </p><hr/>
 <h1>用户使用协议</h1>
<p>LibQQt用户使用协议 <br />
 </p><hr/>
 <h1>收费处</h1>
<p>LibQQt收费处 <br />
 </p><hr/>
 <h1>项目标识</h1>
<div class="image">
<img src="screenshot/logo.png" alt="logo" title="Logo"/>
</div>
 </div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>
